import type { IEditorComsUnions, IJsonSchema } from "@/types";
import { surveyComponentsMap } from "@/configs/surveyComponentsMap";

/**
 * - 还原组件的jsonSchema
 * @description 因为在保存进IndexDB时，Json Schema中的组件的render方法会被删除
 * @description 所以需要在查看问卷时，将从IndexDB中获取的Json Schema中的组件重新还原render方法
 * @param coms 组件列表
 */
export const restoreComJsonSchema = (coms: IJsonSchema[]) => {
  coms.forEach((com) => {
    // ? 还原业务组件
    com.type = surveyComponentsMap[com.name];

    Object.entries(com.status).forEach(([_, statusItem]) => {
      const name = statusItem.name as IEditorComsUnions;
      // ? 还原编辑组件
      statusItem.editCom = surveyComponentsMap[name];
    });
  });
};
